package com.example.myapplication.camera;

import android.hardware.camera2.CameraDevice;


/**
 * Create By TreeRoot
 * Create Time: 2024/01/25 08:43
 * Class Name: CameraListener
 * Description:
 * 相机操作回调接口
 *
 * @author TreeRoot
 */
public interface CameraListener {
    /**
     * 当打开时执行
     *
     * @param cameraDevice       相机实例
     * @param cameraId           相机ID
     * @param displayOrientation 相机预览旋转角度
     * @param isMirror           是否镜像显示
     */
    void onCameraOpened(CameraDevice cameraDevice, int cameraId, int displayOrientation, boolean isMirror);

    /**
     * 预览数据回调
     *
     * @param data         预览数据
     * @param cameraDevice 相机实例
     */
    void onPreview(byte[] data, CameraDevice cameraDevice);

    /**
     * 当相机关闭时执行
     */
    void onCameraClosed();

    /**
     * 当出现异常时执行
     *
     * @param e 相机相关异常
     */
    void onCameraError(Exception e);

    /**
     * 属性变化时调用
     *
     * @param cameraId           相机ID
     * @param displayOrientation 相机旋转方向
     */
    void onCameraConfigurationChanged(int cameraId, int displayOrientation);
}
